package main

import (
	"fmt"
	"unicode/utf8"
)

/**
	1、将字符串以16进制输出
	2、将字符串以rune输出（就是输出字符串中的每个char）
	3、rune是int32类型，占4个字节
*/
func main() {
	var str = "我是中国人, I am Chinese"

	fmt.Printf("转成16进制结果 [%x] \n", str)
	fmt.Printf("转成16进制结果 [%x] \n", []byte(str))
	fmt.Println([]byte(str))

	// 遍历这个字符串
	// rune 占4个字节，相当于 int32 的别名
	for index, char := range []rune(str) {
		fmt.Printf("(index=%d,char=%c)", index, char)
		fmt.Println("index=", index, "char=", char)
	}

	fmt.Println("=====================================")

	// 输出 str 的字节长度，中文3个字节，英文一个字节，utf-8编码
	println("str字符串的字节长度", len(str))

	println("str字符串中共有多少个字符(rune)", utf8.RuneCountInString(str))
}
